People have long sought efficient, intuitive ways to move information in and out of computers. Each step in the development of computer interfaces brings the level of discourse closer to the sights and sounds people use to communicate with one another. But progress in computer interfaces has been intermittent and very difficult.
Early computers used toggle switches to receive data and instructions, and displayed computational results by flashing particular light patterns in one or more rows of lights. Errors were easy to make and hard to detect, because people were forced to adapt to the machine's abilities instead of making the computer communicate in the flexible ways familiar to people.
After computers were improved to include video screens and keyboards, text messages to the machine could be sent using the keyboard, and output could be displayed on the video screen. This was an enormous improvement because it allowed the use of a written language. Familiar examples of such textual interfaces still used today include the command interpreters of the DOS and UNIX operating systems.
Unfortunately, textual interfaces leave much to be desired. Each textual interface is confined by a rigid grammar and a limited vocabulary. A user must learn key words for even the simplest commands. Very little about the interface is intuitive. For example, to find the amount of disk space that is available on a given machine using the DOS operating system, "dir" is typed and the number of available "bytes" is then displayed.
Recently developed graphical user interfaces (GUIs) are much easier to use. Familiar GUIs include those in word processors, spreadsheets, operating systems, programming packages, graphic design programs, Internet applications, and other software. GUIs typically display textual and graphical output in windows, and accept input from at least a mouse and a keyboard. Unlike textual interfaces, which required the user to already know each desired command, GUIs allow the user to review a menu of available commands. GUIs may also include graphical icons which suggest the purpose of a button or other interface component.
Efforts to improve interfaces reflect the value of a good interface. Many increases in the power and usefulness of modern personal computers started with increases in processor power, memory, and disk storage capacity. But these resources are only useful to the extent that they are efficiently available through a good interface.
To efficiently utilize computer system resources, a computer user must track resource usage. Unfortunately, many resource management interfaces are still textual, requiring users to interpret numbers instead of making the interface communicate resource status in some way that is more intuitive. Even GUI resource manager interfaces typically provide only a "snapshot" of the current resource status, and provide that only after the user clicks several buttons or otherwise actively requests a status update.
Some resource managers provide graphical data presentations similar to the charts found in spreadsheet and other graphing programs. Frequently used charts include column, line, pie, histogram, and scatter charts in two or more dimensions. While these charts help analyze large, complex collections of data, they still require interpretation. A more intuitive interface would be an advance.
One of the most valuable limited resources is time. Typical scheduling and calendaring application programs allow users to mark specific blocks of time as "used." But these programs do not quickly communicate how busy a given day will be, because they do not compare the demands on the user's time with the time available to meet those demands. That is, the interfaces do not make it obvious at a glance whether the user's day will be slow, or busy, or that the user is already "over-booked."
Other resources also need to be monitored. Examples include resources associated with meters, televisions, audio and video recorders and players, microwave ovens, telephones, washing machines, and other machines. Interfaces for controlling such resources may appear on very small screens, so it would be helpful to have a method to display resource status compactly and intuitively.
In short, although humans can appreciate very fine changes in what we see and hear, typical program interfaces do not take full advantage of these abilities. For example, current calendaring programs indicate allocated time by coloring a rectangle with one of two colors, depending on whether the corresponding block of time is allocated. At the most, a few different kinds of events are colored with a few different colors.
It would therefore be an advancement in the art to provide a novel computer interface for tracking resource status.
It would be an additional advancement to provide such an interface which exploits our natural ability to discern subtle changes in the characteristics of a color.
It would also be an advancement to provide a novel interface which extends existing interfaces and can be used together with existing interface components.
Such an interface is disclosed and claimed herein.